﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace Clinica_Frba.DataClasses
{
    public class BonoFarmacia
    {
        public int bf_id { get; set; }
        public int bf_compra_id { get; set; }
        public DateTime bf_fecha_vencimiento { get; set; }
        public int Cod_Receta { get; set; }
        public int Cod_Plan { get; set; }
        public string detalle { get; set; }
        public int Grupo_familiar { get; set; }
        public int precio { get; set; }
        public string codigoBono { get; set; }

        public bool Usado { get; set; }

        public BonoFarmacia(Afiliado unAfiliado)
        {
            precio = Convert.ToInt32((new PlanMedico(Convert.ToInt32(unAfiliado.afil_Plan_Medico))).plme_precio_farm);
            Cod_Plan = Convert.ToInt32(unAfiliado.afil_Plan_Medico);
            detalle = "Bono Farmacia";
            Grupo_familiar = Convert.ToInt32(unAfiliado.afil_Grupo_familiar);
        }

        public BonoFarmacia(int codigo)
        {
            bf_id = codigo;
            List<SqlParameter> ListaParametros = new List<SqlParameter>();
            ListaParametros.Add(new SqlParameter("@codigo", codigo));

            SqlDataReader lector = DataRepository.RepositoryBase.realizarConsulta("SELECT * FROM vacuna_gdd.Compra_bono JOIN vacuna_gdd.Bono_farmacia ON bf_compra_id = cobo_id JOIN vacuna_gdd.Afiliado ON cobo_afiliado_id = afil_id where codigo=@codigo", "Texto", ListaParametros);

            if (lector.HasRows)
            {
                lector.Read();
                Cod_Plan = (int)(decimal)lector["cobo_plan"];
                bf_compra_id = (int)(decimal)lector["cobo_id"];
                precio = (int)(decimal)lector["cobo_monto"];
                Compra_bono unaCompra = new Compra_bono(bf_compra_id);
                bf_fecha_vencimiento = unaCompra.cobo_fecha_compra.AddDays(60);
                Grupo_familiar = (int)(decimal)lector["afil_grupo_familiar"];
                detalle = "Bono Farmacia";
                Usado = (bool)lector["bf_habilitado"];
            }
        }

        public bool EstasVencido(DateTime hoy)
        {
            return (bf_fecha_vencimiento.Date < hoy.Date);
        }

        public bool PuedeUsarlo(int grupo)
        {
            if (grupo == Grupo_familiar)
            {
                return true;
            }
            else { return false; }
        }

        public bool Usar()
        {
            List<SqlParameter> ListaParametros = new List<SqlParameter>();
            ListaParametros.Add(new SqlParameter("@codigo", bf_id));

            return DataRepository.RepositoryBase.InsertarElementos("update vacuna_gdd.Bono_farmacia set bf_habilitado =0 where codigo=@codigo ", "Texto", ListaParametros);
        }
    }
}